package com.xiangshizhineng.tianzhangzhi.app.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiangshizhineng.tianzhangzhi.app.common.base.BaseDAO;
import com.xiangshizhineng.tianzhangzhi.app.model.entity.Event;
import com.xiangshizhineng.tianzhangzhi.app.model.response.EventResponse;
import com.xiangshizhineng.tianzhangzhi.app.model.response.MesIsMaxIdResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface EventDAO extends BaseMapper<EventResponse> {


    EventResponse queryDetailsById(@Param("id") Long id);

    /**
     * 当前用户所有催办事件，用户id
     * */
    List<EventResponse> urgeEvent(Long id);

    /**
     * 当前用户催办事件单个详情,事件id
     * */
    EventResponse cbEvent(Long id);

    /**
     * 根据查询条件得到指定字段集合的数据列表，包含分页和排序信息
     * @param params
     * @return
     */
    List<EventResponse> cbSelect(Map<String, Object> params);

    /**
     * 催办统计查询条数
     *
     * @param params 筛选条件的键值对
     * @return 统计的条数
     */
    int cbCount(Map<String, Object> params);

    /**
     * 统计任务里事件条数
     */
    int taskEventCount(Map<String, Object> params);

    /**
     * 统计任务里事件条数
     */
    List<EventResponse> taskEvent(Map<String, Object> params);

    /**
     * 事件新消息
     */
    MesIsMaxIdResponse maxId(String userId);

    /**
     * 催办事件新消息
     */
    int cbMaxId(String userId);

    /**
     * 新事件提醒
     */
    int mesCount(String userId);
}
